Reduction of physiological metric error due to inertial cadence

ABSTRACT

The heart rate monitor disclosed herein removes a step rate component from a measured heart rate by using one or more filtering techniques when the step rate is close to the heart rate. In general, a difference between the step rate and the heart rate is determined, and the step rate is filtered from the heart rate based on a function of the difference.

BACKGROUND

Personal health monitors provide users with the ability to monitor their overall health and fitness by enabling the user to monitor heart rate or other physiological information during exercise, athletic training, rest, daily life activities, physical therapy, etc. Such devices are becoming increasingly popular as they become smaller and more portable.

A heart rate monitor represents one example of a personal health monitor. A common type of heart rate monitor uses a chest strap that includes surface electrodes to detect muscle action potentials from the heart. Because such surface electrodes provide a relatively noise free signal, the information produced by monitors that use surface electrodes is relatively accurate. However, most users find chest strap monitors uncomfortable and inconvenient.

Another type of monitor uses photoplethysmograph (PPG) sensors disposed in an ear bud. The ear provides an ideal location for a monitor because it is a relatively immobile platform that does not obstruct a person's movement or vision. PPG sensors proximate the ear may have, e.g., access to the inner ear canal and tympanic membrane (for measuring core body temperature), muscle tissue (for monitoring muscle tension), the pinna and earlobe (for monitoring blood gas levels), the region behind the ear (for measuring skin temperature and galvanic skin response), and the internal carotid artery (for measuring cardiopulmonary functioning). The ear is also at or near the point of the body's exposure to environmental breathable toxins of interest (volatile organic compounds, pollution, etc.), noise pollution experienced by the ear, lighting conditions for the eye, etc. Further, as the ear canal is naturally designed for transmitting acoustical energy, the ear provides a good location for monitoring internal sounds, such as the heartbeat, breathing rate, mouth motion, etc.

PPG sensors measure the relative blood flow using an infrared or other light source that projects light that is ultimately transmitted through or reflected off tissue, and is subsequently detected by a photodetector and quantified. For example, higher blood flow rates result in less light being absorbed, which ultimately increases the intensity of the light that reaches the photodetector. By processing the signal output by the photodetector, a monitor using PPG sensors may measure the blood volume pulse (the phasic change in blood volume with each heartbeat), the heart rate, heart rate variability, and other physiological information.

PPG sensors are generally small and may be packaged such that they do not encounter the comfort and/or convenience issues associated with other conventional health monitors. However, PPG sensors are also highly sensitive to noise, and thus are more prone to accuracy problems. For example, a motion component of a user, e.g., a step rate of a jogger, is often as strong as or stronger than a heart rate component, which may corrupt a heart rate measurement. U.S. Pat. No. 7,144,375, which discloses using an accelerometer as a motion reference for identifying the potential step rate component(s) of a PPG sensor output, provides one possible solution to this problem. When the step rate is close to the heart rate, the '375 patent teaches spectrally transforming the step rate and heart rate waveforms, e.g., over a window of samples, respectively provided by the step rate and heart rate sensors to create a step rate spectrum and a heart rate spectrum. If the spectral transform operation uses a 6 s window, the average latency incurred for the transform operation is 3 s. After performing the spectral transform, the '375 patent spectrally subtracts the heart rate and step rate spectrums. The '375 patent further keeps a history of the top ten peaks from the output of the spectral subtraction to perform various statistical analyses in order to achieve the desired accuracy before making a decision regarding whether there is a cross-over between the heart rate and the step rate, and before making a decision regarding which spectral peak corresponds to the heart rate. Thus, the post-transform operations implemented by the '375 patent incur an additional processing latency, e.g., of ten seconds, which is undesirable. Thus, there remains a need for alternative solutions that provide an accurate heart rate with less latency when the step rate is close to the heart rate.

SUMMARY

The solution disclosed herein removes a step rate component from a measured heart rate by using one or more filtering techniques when the step rate is close to the heart rate. In general, a difference between the step rate and the heart rate is determined, and the step rate is filtered from the heart rate based on a function of the difference.

In one exemplary embodiment a step rate processor computes a step rate of a user based on a waveform provided by a step rate sensor, and a heart rate processor computes a first heart rate of the user based on a waveform provided by a heart rate sensor. A noise processor then computes a difference between the step rate and the heart rate, computes a second heart rate of the user as a function of the difference, and outputs the second heart rate. For example, the noise processor may filter the heart rate as a function of the difference.

More broadly, an exemplary physiological monitor comprises an inertial sensor, an inertial processor, a physiological sensor, a physiological processor, and a noise processor. The inertial processor computes an inertial cadence of a user based on an inertial waveform provided by the inertial sensor. The physiological processor computes a first physiological metric of the user based on a physiological waveform provided by the physiological sensor. The noise processor computes a difference between the inertial cadence and the first physiological metric, computes a second physiological metric as a function of the difference, and outputs the second physiological metric.

An exemplary method reduces noise in data output by a physiological monitor. To that end, the method includes computing an inertial cadence of a user based on an inertial waveform provided by an inertial sensor in the physiological monitor, and computing a first physiological metric of the user based on a physiological waveform provided by a physiological sensor in the physiological monitor. Subsequently, the method computes a difference between the inertial cadence and the first physiological metric, computes a second physiological metric as a function of the difference, and outputs the second physiological metric.

Because the solution disclosed herein processes only the current spectrally transformed data, e.g., the current step rate and heart rate spectrums, the present invention essentially eliminates the post-transform latency incurred by the '375 patent. Thus, the solution disclosed herein provides sufficient accuracy without the undesirable latency associated with the prior art.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an exemplary heart rate monitor disposed in an ear bud.

FIG. 2 shows a block diagram of an exemplary physiological monitoring system disposed in a housing.

FIG. 3 shows an exemplary process for removing an inertial cadence from a physiological metric.

FIG. 4 shows another exemplary process for removing the inertial cadence from the physiological metric.

FIG. 5 shows an exemplary block diagram for the physiological processor of FIG. 2.

FIGS. 6A-6D show exemplary results of simulated step rate and heart rate spectrums, and the resulting difference spectrums and estimated heart rates.

FIG. 7 show an exemplary result of a simulation used to estimate a heart rate according to the solution disclosed herein.

DETAILED DESCRIPTION

The techniques disclosed herein improve the accuracy of the results achieved when processing data, e.g., heart rate data, provided by a physiological sensor. FIG. 1 shows an exemplary monitoring system 12 disposed in an ear bud 10. The ear bud 10 may comprise a wireless or wired ear bud that communicatively couples to a remote device, e.g., a music player, a smart phone, a personal data assistant, etc. The monitoring system 12 monitors the heart rate and/or other physiological metrics, and outputs such physiological information to the user and/or to other processing functions. While the monitoring system 12 disclosed herein is presented as being part of an ear bud 10, it will be appreciated that monitoring system 12 may be disposed into any device that secures to the body of a user, e.g., a device that secures to an ear, finger, toe, limb, wrist, nose, etc. In some embodiments, the device may comprise a patch, e.g., a bandage, designed to attach the system 12 to any desired location on the user's body.

FIG. 2 shows a block diagram of an exemplary monitoring system 12 according to one exemplary embodiment. System 12 comprises a processor 100 coupled to one or more physiological sensors 20 and one or more inertial sensors 30, an output interface 40, and memory 50. Physiological sensor(s) 20 produce a physiological waveform responsive to the physiological state of the user. Inertial sensor(s) 30 produce an inertial waveform responsive to the movement of the user. An exemplary inertial sensor includes, but is not limited to, an accelerometer, an optical emitter/detector pair, an optical detector, a CCD camera, a piezoelectric sensor, a thermal sensor, or any type of sensor capable of capturing motion information. Exemplary optical emitters comprise one or more light emitting diodes, laser diodes, organic light-emitting diodes, miniature light emitters, electromagnetic emitters, etc. It will be appreciated that the sensors disclosed herein are not limited to optical wavelengths of the electromagnetic spectrum. In some embodiments, emitters and/or detectors configured for shorter or longer wavelengths may be used to accommodate shorter or longer wavelengths in the electromagnetic spectrum. The optical detector may comprise a photodetector, an electromagnetic detector, a photodiode, etc. Processor 100 processes the physiological and inertial waveforms using the technique(s) disclosed herein, along with information stored in memory 50, to remove an inertial cadence from a heart rate and/or one or more physiological metrics. Output interface 40 outputs the determined physiological metric(s). It will be appreciated that output interface may comprise a transceiver for transmitting the data output by the processor 100 to a remote device. Alternatively or additionally, the output interface may provide the output data to a user interface, e.g., a display, a database, another processor, and/or a processing function.

While the physiological sensors 20 may comprise any known physiological sensor, the physiological sensor(s) 20 in exemplary embodiments comprise photoplethysmograph (PPG) sensors that generate an electrical physiological waveform responsive to detected light intensity. PPG sensors comprise light intensity sensors that generally rely on optical coupling of light into the blood vessels. As used herein, the term “optical coupling” refers to the interaction or communication between excitation light entering a region and the region itself. For example, one form of optical coupling may be the interaction between excitation light generated from within a light-guiding ear bud 10 and the blood vessels of the ear. Light guiding ear buds are described in co-pending U.S. Patent Application Publication No. 2010/0217102, which is incorporated herein by reference in its entirety. In one embodiment, the interaction between the excitation light and the blood vessels may involve excitation light entering the ear region and scattering from a blood vessel in the ear such that the intensity of the scattered light is proportional to blood flow within the blood vessel. Another form of optical coupling may result from the interaction between the excitation light generated by an optical emitter within the ear bud 10 and the light-guiding region of the ear bud 10.

Processor 100 comprises an inertial processor 110, physiological processor 120, and noise processor 140. Inertial processor 110 determines an inertial cadence I, e.g., a step rate, from the inertial waveform using any known means. The determined inertial cadence may include the true inertial cadence as well as one or more harmonics of the true inertial cadence, e.g., the ½×, 3/2×, and 2× harmonics of the true inertial cadence. For example, the inertial processor may spectrally transform the inertial waveform to generate an inertial spectrum, and set the inertial cadence to the frequency of the largest peak of the inertial spectrum. It will be appreciated that other methods may alternatively be used to determine the inertial cadence. Physiological processor 120 determines one or more physiological metrics H, e.g., a heart rate, from the physiological waveform, as discussed further herein. The determined physiological metric may also refer to a physiological assessment computed from one or more physiological metrics. Noise processor 140 filters the determined metric(s) to remove the inertial cadence, and therefore, to produce a revised physiological metric Ĥ having an improved accuracy.

For simplicity, the following describes the processor 100 in terms of a noise processor 140 that determines a heart rate by removing a step rate by using one or more filtering techniques when the step rate determined by the inertial processor 110 is close to the heart rate determined by the physiological processor 120. In general, a difference between the step rate and the heart rate is determined, and the step rate is filtered from the heart rate based on a function of the difference. It should be noted, however, that the physiological processor 120, and thus processor 100, may alternatively or additionally determine other physiological metrics, e.g., a respiration rate, a heart rate variability (HRV), a pulse pressure, a systolic blood pressure, a diastolic blood pressure, a step rate, an oxygen uptake (VO₂), a maximal oxygen uptake (VO₂ max), calories burned, trauma, cardiac output and/or blood analyte levels including percentage of hemoglobin binding sites occupied by oxygen (SPO₂), percentage of methomoglobins, a percentage of carbonyl hemoglobin, and/or a glucose level. Alternatively or additionally, processor 100 may determine and filter one or more physiological assessments, e.g., a ventilatory threshold, lactate threshold, cardiopulmonary status, neurological status, aerobic capacity (VO₂ max), and/or overall health or fitness. Further, it will be appreciated that the processor 100 may additionally or alternatively remove other inertial cadences, e.g., rhythmic head movements, body movements (e.g., arm movements, weight lifting, etc.), etc., from the heart rate.

FIG. 3 shows an exemplary method 200 that may be implemented by processor 100 to compute an output heart rate. After processor 100 receives the inertial and physiological waveforms from the sensor(s) 20 and 30 (block 210), the inertial processor 110 determines a step rate I (block 220), and the physiological processor 120 determines a first estimate H of the heart rate (block 230). The noise processor 140 computes a revised estimate Ĥ of the heart rate as a function of the difference between the step rate and the heart rate (block 240), and subsequently outputs the revised heart rate estimate Ĥ to output interface 40 (block 290). It will be appreciated that processor 100 may also store the revised heart rate estimate Ĥ in memory 50, e.g., so that it may be used in subsequent calculations.

FIG. 4 shows an exemplary method 240 for computing the revised heart rate Ĥ as a function of the difference between the step rate and the first heart rate. The exemplary method 240 of FIG. 4 includes multiple levels, where a first level includes block 242, a second level includes blocks 244 to 248, a third level includes block 250, a fourth level includes block 260, a fifth level includes block 270, and a sixth level includes blocks 280 to 284. It will be appreciated, however, that some exemplary embodiments may implement one or more of these levels, as described further herein, and/or that the present invention does not require each level to be implemented in the order shown in FIG. 4.

The first level (blocks 242 and 243) comprises an initialization level, where the heart rate processor 120 and/or noise processor 140 initializes and/or determines one or more variables useful for determining the output heart rate based on pre-determined values, values stored in memory, and measured information (blocks 242 and 243), e.g., an instantaneous heart rate H_(inst), a filtered heart rate H_(filt), a lock count C_(lk), a second (or output) heart rate H, etc. For example, to determine H_(inst), heart rate processor 120 comprises a spectral transformer 122 (FIG. 5) that spectrally transforms the physiological waveform output by the heart rate sensor(s) 20 to generate a physiological spectrum. For example, the spectral transformer 122 may transform the heart rate waveform over a window of samples, e.g., 6 s. It will be appreciated that such a transform operation incurs a latency half the length of the window, e.g., 3 s. The heart rate processor 120 initializes the first heart rate by identifying the frequency F₁ of the spectral peak of the physiological spectrum having the largest amplitude as an initial instantaneous heart rate H_(inst), where the initial instantaneous heart rate corresponds to the first heart rate (block 243). The heart rate processor 1120 may further identify the frequency F₂ of the spectral peak of the physiological spectrum having the next largest amplitude. Alternatively or additionally, a filtered heart rate may be initialized, e.g., by retrieving a previously determined filtered heart rate from memory 50 or by setting H_(filt) to an empirically determined value, e.g., 83. Further, C_(lk) may be initialized by setting it equal to zero, where C_(lk) represents, e.g., the number of successive frames where the difference between the heart rate and the step rate satisfies a predetermined threshold. Noise processor 140 may also determine an initial second (or output) heart rate H, where the second heart rate represents the heart rate ultimately output by the noise processor 140. In some cases, the processor 140 may set the initial H to an empirically determined value, e.g., 83. Alternatively or additionally, the noise processor 140 may initialize H to the Ĥ value from a previous frame after the first iteration through the process 240.

The second level (blocks 244 to 248) determines an instantaneous heart rate as a function of a difference between an initial instantaneous heart rate and the step rate, and particularly addresses the scenario when the results of spectral subtraction wipe out the primary spectral peak typically used to determine the instantaneous heart rate. More particularly, the second level determines whether the step rate I provided by inertial processor 110 is close to the initial instantaneous heart rate H_(inst) by determining whether the initial instantaneous heart rate is within a crossover window (block 244), and adjusts the instantaneous heart rate based on that determination. For example, noise processor 140 may determine whether the initial H_(inst) is within the crossover window by determining whether the difference between the step rate I and the initial H_(inst) is less than or equal to a threshold T_(w), e.g., T_(w)=8. In one embodiment, noise processor 140 adjusts the initial H_(inst) only when the initial H_(inst) is within the crossover window, where the adjustment is based on a weighted average of the frequencies of two or more of the spectral peaks provided by the spectral transformer 122 (block 248). For example, noise processor 140 may compute a weight w according to:

$\begin{matrix} {{w = \frac{M_{1}}{M_{1} + M_{2}}},} & (1) \end{matrix}$ where M₁ represents the magnitude of the largest spectral peak of the physiological spectrum and M₂ represents the magnitude of a second spectral peak of the physiological spectrum, e.g., the next largest spectral peak. The noise processor 140 then adjusts the instantaneous heart rate by computing a weighted average of the frequencies of the two spectral peaks, e.g., according to: H _(inst) =wF ₁+(1−w)F ₂,  (2) where F₁ represents the frequency of the largest spectral peak (and corresponds to the initial instantaneous heart rate), and F₂ represents the frequency of the second spectral peak.

In some embodiments, the second level may also optionally determine whether the frequency F₂ of the second spectral peak of the physiological spectrum is also in the crossover window and whether the step rate I is between the initial H_(inst) and F₂ (block 246) when the condition of block 244 is satisfied. For example, the noise processor 140 may determine whether F₂ is within the crossover window by determining whether the difference between F₂ and I is less than or equal to a threshold, e.g., 8. Further, the noise processor 140 may determine whether I is between F₂ and the initial H_(inst) by determining whether sign(H_(inst)−I)≠sign(F₂−I). In any event, for this example, noise processor 140 executes the operation of block 248 only when the conditions of blocks 244 and 246 are both satisfied.

The third level (block 250) filters the instantaneous heart rate using rate limits. More particularly, the third level computes a revised filtered heart rate Ĥ_(filt) as a function of a current filtered heart rate H_(flit), the instantaneous heart rate H_(inst) output by the second level, and a rate limit Δ_(r). For this embodiment, the heart rate processor 120 may further include a filter 124, as shown in FIG. 5. In general, after comparing H_(inst) to H_(filt), which may be retrieved from memory 50 or provided by initialization block 242, filter 124 computes the revised filtered heart rate estimate Ĥ_(filt) as a function of H_(filt), H_(inst), and the rate limit Δ_(r) based on the comparison, where Δ_(r) may also be retrieved from memory 50. In one exemplary embodiment, when H_(inst)≥H_(filt), filter 124 computes the revised filter estimate Ĥ_(filt) according to: Ĥ _(filt) =H _(filt)+min(Δ_(r+) ,H _(inst) −H _(filt))  (3) where Δ_(r+) represents an increasing rate limit. However, when H_(inst)<H_(filt), filter 124 computes the revised filter estimate Ĥ_(filt) according to: Ĥ _(filt) =H _(filt)+max(Δ_(r−) ,H _(inst) −H _(filt)),  (4) where Δ_(r−) represents a decreasing rate limit. As used herein, the rate limit represents a limit to the rate of change for the heart rate. For example, the rate limit may represent the rate of change in beats per minute (BPM) that the heart rate may experience in a 1 second frame period. Such a rate limit may be determined based on empirical evidence, and is generally predetermined. It will be appreciated that the rate limit may be expressed as the rate of change experienced for any length frame period, where for example, the rate limit in BPM/s is multiplied by the length of the frame period (in seconds). Additional details for the implementation of block 250 may be found in U.S. Provisional Application Ser. No. 61/586,874 filed concurrently herewith and titled “Physiological Metric Estimation Rise and Fall Limiting,” which is incorporated by reference herein in its entirety.

In the fourth level (block 260), the noise processor 140 biases the filtered heart rate toward the step rate to minimize wandering due to blindness during a crossover. To that end, the noise processor 140 further adjusts the revised filter estimate Ĥ_(filt) as a function of the differenced between the step rate and Ĥ_(filt). For example, the noise processor 140 may determine whether the revised filter estimate Ĥ_(filt) output by block 250 is within a crossover window by comparing the difference between Ĥ_(filt) and I to a threshold, e.g., abs(I−H_(filt))≤8. If Ĥ_(filt) is within the crossover window, noise processor 140 may further adjust Ĥ_(filt) as a function of the difference between Ĥ_(filt) and I. For example, the noise processor 140 may further adjust Ĥ_(filt) according to: Ĥ _(filt) =Ĥ _(filt)+0.5 sign(I−Ĥ _(filt)).  (5)

In the fifth level (block 270), the noise processor 140 counts the number of successive frames where the heart rate is within a crossover window. To that end, the noise processor updates a lock count C_(lk) as a function of the difference between I and Ĥ_(filt) output by block 260, where C_(lk) represents, e.g., the number of successive frames where the difference between Ĥ_(filt) and I satisfy a threshold requirement. For example, when C_(lk) is compared to 0 for equality (e.g., C_(lk)==0), and when abs(H_(filt)−I)<6, noise processor 140 may set C_(lk)=1. However, when C_(lk)>0, and when abs(H_(filt)−I)>6, noise processor 140 may set C_(lk)=0, and when C_(lk)>0, and when abs(H_(filt)−I)≤6, noise processor 140 may increment C_(lk), e.g., set C_(lk)=C_(lk)+1.

In the sixth level (blocks 280 to 284), the noise processor 140 filters the oscillations of the instantaneous heart rate that occur during a crossover sustained for a number of successive frames. For example, the Ĥ_(flit) output by block 260 is further filtered responsive to a comparison between the lock count and a threshold T_(c) to generate the second (or output) heart rate Ĥ to be output to the output interface 40. For example, if C_(lk)>T_(c), the output heart rate Ĥ may be determined as a first function of a previously determined (or initialized) output heart rate H and Ĥ_(filt), e.g., according to ƒ₁(H,H_(filt)) (block 282). In one exemplary embodiment, the first function may comprise: Ĥ=ƒ ₁(H,H _(filt))=H+(Ĥ _(filt) −H)/4,  (6) where H represents an initialized second heart rate from block 242, or a previously determined second (or output) heart rate that may, e.g., be retrieved from memory 50. If, however, C_(lk)≤T_(c), the output heart rate Ĥ may be determined as a second function of the previously determined (or initialized) output heart rate H and Ĥ_(filt), e.g., according to ƒ₂(H,H_(filt)) (block 284). In one exemplary embodiment, the second function may comprise: Ĥ=ƒ ₂(H,H _(filt))=H+(Ĥ _(filt) −H)/2.  (7)

It will be appreciated that not all of the six levels of FIG. 4 are required to determine Ĥ output to the output interface 40. For example, exemplary embodiments may compute the output heart rate using:

-   -   the second and third levels, where the output heart rate         comprises the filtered heart rate Ĥ_(filt) output by filter 124         of FIG. 5 and block 250 of FIG. 4.     -   the third and fourth levels, where the output heart rate         comprises the filtered heart rate Ĥ_(filt) output by block 260         of FIG. 4, and the input heart rates comprise e.g., an initial         instantaneous heart rate H_(inst) from block 242 of Figure and         an initial filtered heart rate H_(filt) obtained from block 242         of FIG. 4 or previously determined and retrieved from memory 50.     -   the fourth level, where the output heart rate comprises the         filtered heart rate Ĥ_(filt) output by block 260 of FIG. 4, and         the input heart rate comprises, e.g., an initial filtered heart         rate H_(filt) obtained from block 242 of FIG. 4 or previously         determined and retrieved from memory 50.     -   the third, fourth, fifth, and sixth levels, where the output         heart rate comprises Ĥ as output by one of blocks 282 and 284 of         FIG. 4, and the input heart rates comprise an initial         instantaneous heart rate H_(inst) from block 242 of Figure and         an initial filtered heart rate H_(filt) obtained from block 242         of FIG. 4 or previously determined and retrieved from memory 50.     -   the fourth, fifth, and sixth levels, where the output heart rate         comprises Ĥ as output by one of blocks 282 and 284 of FIG. 4,         and the input heart rate comprises an initial filtered heart         rate obtained from block 242 of FIG. 4 or previously determined         and retrieved from memory 50.     -   the fifth and sixth levels, where the output heart rate         comprises Ĥ as output by one of blocks 282 and 284 of FIG. 4,         and the input heart rates comprise an initial second heart rate         H obtained from block 242 of FIG. 4 and an initial filtered         heart rate obtained from block 242 of FIG. 4 or previously         determined and retrieved from memory 50.     -   the sixth level, where the output heart rate comprises Ĥ as         output by one of blocks 282 and 284 of FIG. 4, and the input         heart rates comprise an initial second heart rate H obtained         from block 242 of FIG. 4 and an initial filtered heart rate         obtained from block 242 of FIG. 4 or previously determined and         retrieved from memory 50. In this case, the decision diamond 280         not only considers how the lock count compares to the threshold,         but it also considers whether the filtered heart rate is within         a crossover window, e.g., by determining whether the difference         between Ĥ_(filt) and I is less than or equal to a threshold         T_(w).     -   the third, fifth, and sixth levels, where the output heart rate         comprises Ĥ as output by one of blocks 282 and 284 of FIG. 4,         and the input heart rates comprise an initial instantaneous         heart rate H_(inst) from block 242 of Figure and an initial         filtered heart rate H_(filt) obtained from block 242 of FIG. 4         or previously determined and retrieved from memory 50.         It will be appreciated that other combinations not explicitly         disclosed herein may also be used to generate the output heart         rate.

FIGS. 6A-6D and 7 further illustrate both the impact of a step rate on a measured heart rate, and how the solution disclosed herein addresses this problem. First, FIGS. 6A-6D simulate the problems that occur when the step rate and the heart rate are close together. In particular, FIG. 6A shows a step rate spectrum generated responsive to an accelerometer waveform, while FIG. 6B shows a heart rate spectrum generated responsive to a waveform output by a PPG sensor, and thus includes both step rate and heart rate elements. FIG. 6C shows the spectrum produced when the accelerometer spectrum of FIG. 6A is simply subtracted from the heart rate spectrum of FIG. 6B. As shown in FIG. 6C, when the step rate is close to the heart rate, e.g., between 600 and 800 s, the heart rate is attenuated. Thus, while simple spectral subtraction removes the step rate component, it also corrupts the heart rate measurements subsequently obtained from the heart rate spectrum. In particular, FIG. 6D shows how the peak frequency of the difference spectrum of FIG. 6C has large oscillating errors in the crossover window.

FIG. 7 shows the simulation results when the heart rate is estimated using the techniques disclosed herein, e.g., the techniques of FIG. 4. As shown in FIG. 7, the errors around the crossover regions have nearly disappeared, which results in a more accurate heart rate estimate.

The solution disclosed herein provides an accurate heart rate estimate, as shown for example by the simulated results of FIG. 7, without incurring the latency problems associated with the known prior art solution. In particular, because the solution disclosed herein does not require multiple spectrums or statistics to be buffered in a look-ahead fashion in order to detect the initial crossover, which leads to an undesirable latency, the solution disclosed herein avoids the latency problems associated with the prior art without sacrificing accuracy.

While the present invention is described in terms of PPG sensors, it will be appreciated that sensors 20 may comprise any sensor able to generate a physiological waveform, e.g., an electroencephalogram (EEG) waveform, and electrocardiogram (ECG) waveform, a radio frequency (RF) waveform, an electro-optical physiological waveform, and electro-photoacoustic waveform including a photacoustic waveform, an electro-mechanical physiological waveform, and/or an electro-nuclear physiological waveform.

The present invention may, of course, be carried out in other ways than those specifically set forth herein without departing from essential characteristics of the invention. The present embodiments are to be considered in all respects as illustrative and not restrictive, and all changes coming within the meaning and equivalency range of the appended claims are intended to be embraced therein. 

What is claimed is:
 1. A heart rate monitor comprising: a step rate sensor; a step rate processor configured to compute a step rate of a user based on a first waveform provided by the step rate sensor; a heart rate sensor; a heart rate processor configured to compute a first heart rate of the user based on a second waveform provided by the heart rate sensor; and a noise processor configured to reduce motion artifact noise in a heart rate output by the heart rate monitor by: computing a difference between the step rate and the first heart rate; computing a second heart rate as a function of the difference, said second heart rate being more accurate than said first heart rate due to the reduced motion artifact noise; and outputting the second heart rate.
 2. A method of reducing noise in data output by a physiological monitor, the method comprising: computing an inertial cadence of a user based on an inertial waveform provided by an inertial sensor in the physiological monitor; computing a first physiological metric of the user based on a physiological waveform provided by a physiological sensor in the physiological monitor; computing, using a noise processor, a difference between the inertial cadence and the first physiological metric to reduce motion artifact noise; computing, using the noise processor, a second physiological metric as a function of the difference, said second physiological metric being more accurate than said first physiological metric due to the reduced motion artifact noise; and outputting the second physiological metric.
 3. The method of claim 2 further comprising computing a difference between the inertial waveform and the physiological waveform to generate a modified waveform, wherein computing the first physiological metric comprises computing the first physiological metric based on the modified waveform.
 4. The method of claim 2 wherein computing the first physiological metric comprises computing an instantaneous physiological metric based on the physiological waveform.
 5. The method of claim 2 wherein computing the first physiological metric further comprises computing the first physiological metric based on a combination of two or more dominant signals in said physiological waveform when the first physiological metric is within a crossover window relative to the inertial cadence.
 6. The method of claim 5 wherein computing the first physiological metric based on the combination further comprises computing the first physiological metric based on the combination of the two or more dominant signals in said physiological waveform when the inertial cadence falls between at least two of the dominant signals.
 7. The method of claim 2 wherein computing the first physiological metric comprises computing the first physiological metric based on a combination of two or more dominant signals in said physiological waveform when at least one of the dominant signals is within a crossover window relative to the inertial cadence.
 8. The method of claim 7 wherein computing the first physiological metric based on the combination further comprises computing the first physiological metric based on the combination of the two or more dominant signals when the inertial cadence falls between two of the dominant signals.
 9. The method of claim 2 wherein computing the second physiological metric comprises computing a filtered physiological metric as a function of the difference between the inertial cadence and the first physiological metric.
 10. The method of claim 2 wherein computing the second physiological metric as a function of the difference between the inertial cadence and the first physiological metric comprises: comparing the first physiological metric to a current filtered physiological metric; revising the first physiological metric by computing a revised filtered physiological metric as a function of the current filtered physiological metric and a rate limit based on the comparison between the first physiological metric and the current filtered physiological metric; if the revised filtered physiological metric is within a crossover window relative to the inertial cadence, computing the second physiological metric as a function of a difference between the revised filtered physiological metric and the inertial cadence; and else, setting the second physiological metric equal to revised filtered physiological metric.
 11. The method of claim 10 further comprising updating a lock count based on whether the second physiological metric is within a crossover window relative to the inertial cadence, wherein computing the second physiological metric as a function of the difference between the inertial cadence and the first physiological metric comprises selecting a filter responsive to a comparison between the lock count and a threshold, and further computing the second physiological metric as a function of the selected filter.
 12. The method of claim 2 wherein computing the second physiological metric as a function of the difference between the inertial cadence and the first physiological metric comprises: if the first physiological metric is within a crossover window relative to the inertial cadence, computing the second physiological metric as a function of a difference between the first physiological metric and the inertial cadence; and else, setting the second physiological metric equal to the first physiological metric.
 13. The method of claim 12 further comprising updating a lock count based on whether the filtered physiological metric is within a crossover window relative to the inertial cadence, wherein computing the second physiological metric as a function of the difference between the inertial cadence and the first physiological metric comprises selecting a filter responsive to a comparison between the lock count and a threshold, and further computing the second physiological metric as a function of the selected filter.
 14. The method of claim 2 further comprising updating a lock count based on whether the first physiological metric is within a crossover window relative to the inertial cadence, wherein computing the second physiological metric as a function of the difference between the inertial cadence and the first physiological metric comprises selecting a filter responsive to a comparison between the lock count and a threshold and computing the second physiological metric as a function of the selected filter.
 15. The method of claim 2 wherein computing the second physiological metric as a function of the difference between the inertial cadence and the first physiological metric comprises selecting a filter responsive to a comparison between the difference and a threshold and computing the second physiological metric as a function of the selected filter.
 16. The method of claim 2 wherein the first physiological metric comprises an initial filtered physiological metric.
 17. The method of claim 16 wherein computing the first physiological metric comprises retrieving a previously computed filtered physiological metric and setting the initial filtered physiological metric equal to the previously computed filtered physiological metric.
 18. The method of claim 16 further comprising computing an instantaneous physiological metric based on the physiological waveform, wherein computing the first physiological metric comprises computing the initial filtered physiological metric as a function of the instantaneous physiological metric.
 19. The method of claim 16 wherein the second physiological metric comprises a subsequently filtered physiological metric.
 20. The method of claim 19 wherein computing the second physiological metric as a function of the difference between the inertial cadence and the first physiological metric comprises: comparing the first physiological metric to an instantaneous physiological metric computed based on the physiological waveform; computing a revised filtered physiological metric as a function of the instantaneous physiological metric and a rate limit based on the comparison between the instantaneous physiological metric and the first physiological metric; if the revised filtered physiological metric is within a crossover window relative to the inertial cadence, computing the second physiological metric as a function of a difference between the revised filtered physiological metric and the inertial cadence; and else, setting the second physiological metric equal to revised filtered physiological metric.
 21. The method of claim 20 further comprising updating a lock count based on whether the second physiological metric is within a crossover window relative to the inertial cadence, wherein computing the second physiological metric as a function of the difference between the inertial cadence and the first physiological metric further comprises selecting a filter responsive to a comparison between the lock count and a threshold and computing the second physiological metric as a function of the selected filter.
 22. The method of claim 2 wherein the inertial cadence comprises a step rate.
 23. The method of claim 2 wherein the physiological metric comprises a heart rate.
 24. A physiological monitor comprising: an inertial sensor; an inertial processor configured to compute a inertial cadence of a user based on an inertial waveform provided by the inertial sensor; a physiological sensor; a physiological processor configured to compute a first physiological metric of the user based on a physiological waveform provided by the physiological sensor; and a noise processor configured to reduce motion artifact noise in a physiological metric output by the physiological monitor by: computing a difference between the inertial cadence and the first physiological metric; computing a second physiological metric as a function of the difference, said second physiological metric being more accurate than said first physiological metric due to the reduced motion artifact noise; and outputting the second physiological metric.
 25. The physiological monitor of claim 24 wherein the physiological processor is further configured to compute a difference between the inertial waveform and the physiological waveform to generate a modified waveform, wherein the physiological processor computes the first physiological metric based on the modified waveform.
 26. The physiological monitor of claim 24 wherein the physiological processor computes the first physiological metric by computing an instantaneous physiological metric based on the physiological waveform.
 27. The physiological monitor of claim 24 wherein the physiological processor is further configured to compute the first physiological metric based on a combination of two or more dominant signals in said physiological waveform when the first physiological metric is within a crossover window relative to the inertial cadence.
 28. The physiological monitor of claim 27 wherein the physiological processor is further configured to compute the first physiological metric based on the combination of the two or more dominant signals in said physiological waveform when the inertial cadence falls between at least two of the dominant signals.
 29. The physiological monitor of claim 24 wherein the physiological processor is further configured to compute the first physiological metric based on a combination of two or more dominant signals in said physiological waveform when at least one of the dominant signals is within a crossover window relative to the inertial cadence.
 30. The physiological monitor of claim 29 wherein the physiological processor computes the first physiological metric based on the combination by computing the first physiological metric based on the combination of the two or more dominant signals when the inertial cadence falls between two of the dominant signals.
 31. The physiological monitor of claim 24 the physiological processor comprises a filter configured to compute a filtered physiological metric as a function of the difference between the inertial cadence and the first physiological metric.
 32. The physiological monitor of claim 24 wherein the physiological processor is further configured to compare the first physiological metric to a current filtered physiological metric, said physiological processor comprising a filter configured to revise the first physiological metric by computing a revised filtered physiological metric as a function of the current filtered physiological metric and a rate limit based on the comparison between the first physiological metric and the current filtered physiological metric, and wherein the noise processor is configured to: if the revised filtered physiological metric is within a crossover window relative to the inertial cadence, compute the second physiological metric as a function of a difference between the revised filtered physiological metric and the inertial cadence; and else, set the second physiological metric equal to revised filtered physiological metric.
 33. The physiological monitor of claim 32 wherein the noise processor is further configured to update a lock count based on whether the second physiological metric is within a crossover window relative to the inertial cadence, wherein the noise processor computes the second physiological metric as a function of the difference between the inertial cadence and the first physiological metric by selecting a filter responsive to a comparison between the lock count and a threshold, and computing the second physiological metric as a function of the selected filter.
 34. The physiological monitor of claim 24 wherein the noise processor computes the second physiological metric as a function of the difference between the inertial cadence and the first physiological metric by: if the first physiological metric is within a crossover window relative to the inertial cadence, computing the second physiological metric as a function of a difference between the first physiological metric and the inertial cadence; and else, setting the second physiological metric equal to the first physiological metric.
 35. The physiological monitor of claim 34 wherein the noise processor is further configured to update a lock count based on whether the filtered physiological metric is within a crossover window relative to the inertial cadence, wherein the noise processor computes the second physiological metric as a function of the difference between the inertial cadence and the first physiological metric by selecting a filter responsive to a comparison between the lock count and a threshold, and computing the second physiological metric as a function of the selected filter.
 36. The physiological monitor of claim 24 wherein the noise processor is further configured to update a lock count based on whether the first physiological metric is within a crossover window relative to the inertial cadence, wherein the noise processor computes the second physiological metric as a function of the difference between the inertial cadence and the first physiological metric by selecting a filter responsive to a comparison between the lock count and a threshold and computing the second physiological metric as a function of the selected filter.
 37. The physiological monitor of claim 24 wherein the noise processor computes the second physiological metric as a function of the difference between the inertial cadence and the first physiological metric by selecting a filter responsive to a comparison between the difference and a threshold and computing the second physiological metric as a function of the selected filter.
 38. The physiological monitor of claim 24 wherein the first physiological metric comprises an initial filtered physiological metric.
 39. The physiological monitor of claim 38 wherein the physiological processor computes the first physiological metric by retrieving a previously computed filtered physiological metric from a memory and setting the initial filtered physiological metric equal to the previously computed filtered physiological metric.
 40. The physiological monitor of claim 38 wherein the physiological processor comprises a spectral transformer configured to compute an instantaneous physiological metric based on the physiological waveform, wherein the physiological processor computes the first physiological metric by computing the initial filtered physiological metric as a function of the instantaneous physiological metric.
 41. The physiological monitor of claim 38 wherein the second physiological metric comprises a subsequently filtered physiological metric.
 42. The physiological monitor of claim 41 wherein the physiological processor is further configured to compare the first physiological metric to an instantaneous physiological metric computed based on the physiological waveform, said physiological processor comprising a filter configured to compute a revised filtered physiological metric as a function of the instantaneous physiological metric and a rate limit based on the comparison between the instantaneous physiological metric and the first physiological metric, and wherein the noise processor is configured to: if the revised filtered physiological metric is within a crossover window relative to the inertial cadence, compute the second physiological metric as a function of a difference between the revised filtered physiological metric and the inertial cadence; and else, set the second physiological metric equal to revised filtered physiological metric.
 43. The physiological monitor of claim 42 wherein the noise processor is further configured to update a lock count based on whether the second physiological metric is within a crossover window relative to the inertial cadence, wherein the noise processor computes the second physiological metric as a function of the difference between the inertial cadence and the first physiological metric further by selecting a filter responsive to a comparison between the lock count and a threshold and computing the second physiological metric as a function of the selected filter.
 44. The physiological monitor of claim 24 wherein the inertial cadence comprises a step rate.
 45. The physiological monitor of claim 24 wherein the physiological metric comprises a heart rate. 